import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


/**
 * Write a description of class Panier here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Panier
{
	//le nom du panier
	private String nomPanier;
	
    //La liste des choux
    private ArrayList<Chou> lstChoux;
    
    /**
     * Constructor for objects of class Panier
     */
    public Panier()
    { 
        // initialise instance variables
    	this.nomPanier = "";
        this.lstChoux = new ArrayList<Chou>();
    }
    
    public Panier(String nomPanier){
    	this.nomPanier = nomPanier;
    	this.lstChoux = new ArrayList<Chou>();
    }
    
    
    public void addChoux(Chou choux){
    	
    if(choux!=null)
    	if(choux.getMonPanier()!=this)
    {
    		if(choux.getMonPanier()!=null)
    			choux.getMonPanier().retireChoux(choux);
    	this.lstChoux.add(choux);
    	choux.setMonPanier(this);
    	
    }
    	
    	/*//si le choux n'est pas null
    	if(choux!=null){
    		if(choux.getMonPanier()!=null)
    			if (choux.getMonPanier()!=this)
    			{
    			//Panier p = choux.getMonPanier();
    			//p.retireChoux(choux);
    			}
        		//ajout du choux
        this.lstChoux.add(choux);
        	//mis � jour du panier du choux
    	choux.setMonPanier(this);*/
    	
    }
    
    
    public String afficheInfos()
    {
       String infoListeChoux = new String();
       if(!"".equals(this.nomPanier.trim())){
    	   infoListeChoux+=("Nom du panier : " + this.nomPanier.trim() + "\n");
       }
       //parcours de la liste des choux
       for(Chou choux : lstChoux){
    	   infoListeChoux+=(choux.afficheInfos()+"\n");
       }
              
       return infoListeChoux;
    }

	public String getNomPanier() {
		return nomPanier;
	}

	public void setNomPanier(String nomPanier) {
		this.nomPanier = nomPanier;
	}

	public List<Chou> getLstChoux() {
		try{
		return Collections.unmodifiableList(lstChoux);
		}
		catch(Exception e){
			return null;
		}
	}

	public void setLstChoux(ArrayList<Chou> lstChoux) {
		this.lstChoux = lstChoux;
	}
    


public boolean retireChoux (Chou c)
{
	try{
		int i= lstChoux.indexOf(c);
		Chou mc = lstChoux.get(i);
		
		mc.setMonPanier(null);
	}
	catch(Exception E)
	{
		return false;
	
	}
	return lstChoux.remove(c);
}
}